package main

import "fmt"

func main(){

	arr:=[10]int{7:10}
	fmt.Println(arr)

	fmt.Printf("%p\n",&arr)
	//数组作为函数参数是传递数组名,是值传递的
	//&arr传递是引用传递
	t(&arr)
	fmt.Println(arr)


	//值传递
	arr2:=[10]int{7:10}
	fmt.Printf("%s %p\n","arr2 point",&arr2)
	b(arr2)
	fmt.Println("arr2",arr2)


	arr1:=[]int{1,2,3}
	fmt.Printf("%p\n",arr1)
	//切片传递，是引用传递
	a(arr1)
}

func b(arr [10]int){
	arr[1] = 1
	fmt.Println(arr)
	fmt.Printf("%s %p\n","b arr2 point",&arr)
}

//数组传递是值传递，arr *[10]int是传递指针地址
func t(arr *[10]int){
	arr[1]=1
	fmt.Printf("%p\n",arr)
	fmt.Println(*arr)
}

//切片传递，是引用传递
func a(arr []int){
	fmt.Printf("%p\n",arr)
}
